{ config, pkgs, ... }:

let
  other = with pkgs; [
    #asciinema #终端会话记录
    global
    gnuplot
    gnutls
    html-tidy
# emacs dirvish
    # imagemagick
    ffmpegthumbnailer
    # poppler_utils
    mediainfo
# emacs dirvish end 

    lsof # 列出打开文件的工具
    jdk
    #mariadb
    multimarkdown
    #num-utils
    #rclone # 命令行程序同步文件和目录，并从主要的云存储
    #terraform
    texlive.combined.scheme-medium
    tectonic   # latex to pdf
    #tree-sitter
    #w3m

    asdf-vm
    
    go
    go-tools
  ];
  some_lib = with pkgs; [
    assimp # 用于导入各种3D模型格式的库
    asio
    doq
    libGL
    #zlib # 无损数据压缩库
    # 词法分析器生成器
    gd # 动态图像创建库
    glslang
    libmysqlclient
    qrencode # 二维码
    boost
    gmp # GNU多精度算术库
    libuuid

  ];
  build_tools = with pkgs; [
    #automake
    #bison #兼容YACC的分析程序生成器
    #bubblewrap # 非特权沙箱工具
    #bear # 为clang工具生成编译数据库的工具
    #brotli # 一种通用的无损压缩算法和工具
    clang
    clang-tools
    cmake
    #cmake-language-server
    #doxygen_gui # 文档生成
    #flex # 一个快速词法分析器生成器
    gdb
    glibc
    gnumake
    gtk3
    gtk4
    #libtool
    #ninja
    #opencv
    #openssl
    #pkg-config
    qtcreator
    qt6.full
    #sqlite
    xmake
    zlib
  ];
  rust_env = with pkgs; [ rustup ];
  node_env = with pkgs; [ node2nix nodejs nodePackages.pnpm nodePackages.yarn ];
  lua_env = with pkgs; [ lua ];
  python_env = with pkgs;
    [
      (python3.withPackages (ps:
        with ps; [
          black
          epc
          isort
          jupyter
          meson
          nose
          orjson
          pandas
          paramiko
          pip
          pipenv
          pyflakes
          pytest
          rapidfuzz
          requests
          sexpdata
          six
        ]))
    ];
in {
  imports = [
    #./emacs
    ./hyprland
    #./sway
    #./terminal/neovim
    #./terminal/bash.nix
    #./terminal/fish.nix
    #./terminal/git.nix
    #./terminal/helix
    #./terminal/starship.nix
    #./terminal/tmux.nix
    #./terminal/lf.nix
    #./terminal/zsh

    #./theme
  ];

  home.packages = with pkgs;
    [
      #ani-cli             #A cli tool to browse and play anime
      #brave               #Privacy-oriented browser for Desktop and Laptop computers
      #cava               #Console-based Audio Visualizer for Alsa
      #cmus                #Small, fast and powerful console music player for Linux and *BSD
      #cowsay
      #fish
      #flameshot          # Powerful yet simple to use screenshot software
      #devbox
      #git-crypt # Transparent file encryption in git
      #lazygit # Simple terminal UI for git commands
      #helix
      #emacs
      neovim
      #nushell
      #speechd   # okular 语音
      #espeakup  # 无障碍朗读功能
      #playerctl # Command-line utility and library for controlling media players that implement MPRIS
      #statix
      #streamlink          # CLI for extracting streams from various websites to video player of your choosing
      #tmux # Terminal multiplexer
      #trash-cli # Command line interface to the freedesktop.org trashcan
      #xdg-user-dirs # 一个工具，以帮助管理众所周知的用户目录，如桌面文件夹和音乐文件夹
      xclip
      cliphist # Wayland剪贴板管理器

      aria2
      clinfo
      glxinfo
      vulkan-tools
      wayland-utils
      # archives
      unzip
      unrar
      zip
      xz
      p7zip
      #xarchiver  #文件归档管理
      #jetbrains.idea-community
      #eclipses.eclipse-jee
      vscode
      zeal
      appimage-run

      # wine 相关
      # support both 32- and 64-bit applications
      #wineWowPackages.stable
      # 实验版本
      wineWowPackages.staging
      winetricks
      #wineWowPackages.waylandFull
      proton-caller
      podman-desktop
      #virt-manager  #用于管理虚拟机的桌面用户界面
      #virt-manager-qt

      beekeeper-studio
      firefox
      microsoft-edge

      # 自动点击、播放器
      #xautoclick

      imv
      mpv
      ffmpeg
      # 下载器
      motrix
      # A New Bootable USB Solution 引导
      ventoy-full
      # 邮箱客户端
      thunderbird
      #
      filezilla
      # 一个轻量级pdf阅读器
      zathura

      #blender
      gimp
      kdenlive # 视频编辑器
      obs-studio
      #obs-cli
      #hexchat
      #qq
      #telegram-desktop
      # bilibili
      # netease-music-tui
      libreoffice-fresh
      # steam-run
      #waydroid
      wpsoffice-cn
    ]
    ++ build_tools
    ++ lua_env ++ node_env ++ python_env ++ rust_env
    #++ lisp_env
    ++ other;
}
